package com.itchu.system.mapper;


import com.itchu.system.domain.Song;
import com.itchu.system.domain.SongList;
import org.apache.ibatis.annotations.Param;
import com.itchu.system.common.BaseMapper;

import java.util.List;

public interface SongListMapper extends BaseMapper<SongList> {

    //删除歌单-分类表这个中间表中关于歌单id的记录
    void delSongListIdAndCategoryIdBySid(Long id);

    //向歌单-分类表这个中间表中添加关于歌单id的记录
    void addSongListIdAndCategoryId(@Param("id") Long id, @Param("cids") List<Long> cids);

    /**
     * 根据歌单的id查找歌曲列表信息
     * @param id  歌单id
     * @return
     */
    List<Song> findListSongByLid(Long id);

    /**
     * 给歌单添加歌曲操作
     * @param id  歌单id
     * @param sids   歌曲ids
     * @return
     */
    void addSongToList(@Param("id") Long id,@Param("sids") List<Long> sids);

    /**
     * 删除歌单_歌曲这个中间表的所有歌单id的记录
     * @param id  歌单id
     * @return
     */
    void delSongListIdAndSongIdById(Long id);

    /**
     * 在歌单列表删除多个歌曲
     * @param id  歌单id
     * @param sids  歌曲ids
     * @return
     */
    void deleteMutipleSong(@Param("id") Long id, @Param("sids") List<Long> sids);

    /**
     * 在歌单列表删除单个歌曲
     * @param id  歌单id
     * @param sid  歌曲id
     * @return
     */
    void deleteSong(@Param("id") Long id, @Param("sid") Long sid);

    /**
     * 跟据分类cids查找歌单
     * @param cids
     * @return
     */
    List<SongList> findListSongByCids(@Param("cids") List<Long> cids);

    /**
     * 根据分类id查歌单
     * @param cid
     * @return
     */
    List<SongList> findListSongByCid(Long cid);
}
